<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <title>更新日志</title>
<link media="all" rel="stylesheet" type="text/css" href="styles/03e73060321a0a848018724a6c83de7f-theme-base.css" />
<link media="all" rel="stylesheet" type="text/css" href="styles/03e73060321a0a848018724a6c83de7f-theme-medium.css" />

 </head>
 <body class="docs"><div class="navbar navbar-fixed-top">
  <div class="navbar-inner clearfix">
    <ul class="nav" style="width: 100%">
      <li style="float: left;"><a href="function.wordwrap.html">« wordwrap</a></li>
      <li style="float: right;"><a href="refs.basic.vartype.html">变量与类型相关扩展 »</a></li>
    </ul>
  </div>
</div>
<div id="breadcrumbs" class="clearfix">
  <ul class="breadcrumbs-container">
    <li><a href="index.html">PHP Manual</a></li>
    <li><a href="book.strings.html">字符串</a></li>
    <li>更新日志</li>
  </ul>
</div>
<div id="layout">
  <div id="layout-content"><div id="changelog.strings" class="appendix">
  <h1>更新日志</h1>

  <p class="para">对本扩展的类／函数／方法有以下更新。</p>
  <table class='doctable table' rules='groups'><thead><tr><th>Version</th><th>Function</th><th>Description</th></tr></thead><tbody class="gen-changelog v"><tr><td>8.2.0</td><td><a href='function.lcfirst.html'>lcfirst</a></td><td>大小写转换不在依赖于使用 setlocale 设置的区域。只会转换 ASCII 字符。</td></tr><tr><td>&nbsp;</td><td><a href='function.str-ireplace.html'>str_ireplace</a></td><td>大小写转换不在依赖于使用 setlocale 设置的区域。只会进行 ASCII
   大小写转换。非 ASCII 字节值将通过它们的字节值进行比较。</td></tr><tr><td>&nbsp;</td><td><a href='function.strcasecmp.html'>strcasecmp</a></td><td>现在此函数返回 -1 或者 1，之前返回负数或正数。</td></tr><tr><td>&nbsp;</td><td><a href='function.strcmp.html'>strcmp</a></td><td>现在此函数返回 -1 或者 1，之前返回负数或正数。</td></tr><tr><td>&nbsp;</td><td><a href='function.stripos.html'>stripos</a></td><td>大小写转换不在依赖于使用 setlocale 设置的区域。只会进行 ASCII
   大小写转换。非 ASCII 字节值将通过它们的字节值进行比较。</td></tr><tr><td>&nbsp;</td><td><a href='function.stristr.html'>stristr</a></td><td>大小写转换不在依赖于使用 setlocale 设置的区域。只会进行 ASCII
   大小写转换。非 ASCII 字节值将通过它们的字节值进行比较。</td></tr><tr><td>&nbsp;</td><td><a href='function.strnatcasecmp.html'>strnatcasecmp</a></td><td>现在此函数返回 -1 或者 1，之前返回负数或正数。</td></tr><tr><td>&nbsp;</td><td><a href='function.strnatcmp.html'>strnatcmp</a></td><td>现在此函数返回 -1 或者 1，之前返回负数或正数。</td></tr><tr><td>&nbsp;</td><td><a href='function.strncasecmp.html'>strncasecmp</a></td><td>现在此函数返回 -1 或者 1，之前返回负数或正数。</td></tr><tr><td>&nbsp;</td><td><a href='function.strncmp.html'>strncmp</a></td><td>现在此函数返回 -1 或者 1，之前返回负数或正数。</td></tr><tr><td>&nbsp;</td><td><a href='function.strripos.html'>strripos</a></td><td>大小写转换不在依赖于使用 setlocale 设置的区域。只会进行 ASCII
   大小写转换。非 ASCII 字节值将通过它们的字节值进行比较。</td></tr><tr><td>&nbsp;</td><td><a href='function.strtolower.html'>strtolower</a></td><td>大小写转换不在依赖于使用 setlocale 设置的区域。只会转换 ASCII 字符。</td></tr><tr><td>&nbsp;</td><td><a href='function.strtoupper.html'>strtoupper</a></td><td>大小写转换不在依赖于使用 setlocale 设置的区域。只会转换 ASCII 字符。</td></tr><tr><td>&nbsp;</td><td><a href='function.substr-compare.html'>substr_compare</a></td><td>现在此函数返回 -1 或者 1，之前返回负数或正数。</td></tr><tr><td>&nbsp;</td><td><a href='function.ucfirst.html'>ucfirst</a></td><td>大小写转换不在依赖于使用 setlocale 设置的区域。只会转换 ASCII 字符。</td></tr><tr><td>&nbsp;</td><td><a href='function.ucwords.html'>ucwords</a></td><td>大小写转换不在依赖于使用 setlocale 设置的区域。只会转换 ASCII 字符。</td></tr><tr><td>&nbsp;</td><td><a href='function.utf8-decode.html'>utf8_decode</a></td><td>弃用此函数。</td></tr><tr><td>&nbsp;</td><td><a href='function.utf8-encode.html'>utf8_encode</a></td><td>弃用此函数。</td></tr></tbody><tbody class="gen-changelog v8-2-0"><tr><td>8.1.0</td><td><a href='function.get-html-translation-table.html'>get_html_translation_table</a></td><td>flags 从 ENT_COMPAT 更改为 ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401。</td></tr><tr><td>&nbsp;</td><td><a href='function.html-entity-decode.html'>html_entity_decode</a></td><td>flags changed from ENT_COMPAT to ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401.</td></tr><tr><td>&nbsp;</td><td><a href='function.htmlentities.html'>htmlentities</a></td><td>flags 从 ENT_COMPAT 变更为 ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401。</td></tr><tr><td>&nbsp;</td><td><a href='function.htmlspecialchars.html'>htmlspecialchars</a></td><td>flags 从 ENT_COMPAT 变更为 ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401。</td></tr><tr><td>&nbsp;</td><td><a href='function.htmlspecialchars-decode.html'>htmlspecialchars_decode</a></td><td>flags 从 ENT_COMPAT 变更为ENT_QUOTES
       | ENT_SUBSTITUTE | ENT_HTML401。</td></tr></tbody><tbody class="gen-changelog v8-1-0"><tr><td>8.0.0</td><td><a href='function.convert-uuencode.html'>convert_uuencode</a></td><td>在此版本之前，尝试转换空字符串将返回 false，没有任何特殊原因。</td></tr><tr><td>&nbsp;</td><td><a href='function.count-chars.html'>count_chars</a></td><td>在此版本之前，函数在失败时返回 false。</td></tr><tr><td>&nbsp;</td><td><a href='function.crypt.html'>crypt</a></td><td>salt不再可选。</td></tr><tr><td>&nbsp;</td><td><a href='function.html-entity-decode.html'>html_entity_decode</a></td><td>encoding is nullable now.</td></tr><tr><td>&nbsp;</td><td><a href='function.htmlentities.html'>htmlentities</a></td><td>encoding 现在可以为 null。</td></tr><tr><td>&nbsp;</td><td><a href='function.implode.html'>implode</a></td><td>在 array 之后传递 separator 已不再支持。</td></tr><tr><td>&nbsp;</td><td><a href='function.levenshtein.html'>levenshtein</a></td><td>在此版本之前，必须使用两个或者五个参数调用 levenshtein。</td></tr><tr><td>&nbsp;</td><td><a href='function.levenshtein.html'>levenshtein</a></td><td>在此版本之前，如果某个参数字符串的长度超过 255 个字符，则 levenshtein 将会返回 -1。</td></tr><tr><td>&nbsp;</td><td><a href='function.metaphone.html'>metaphone</a></td><td>The function returned false on failure.</td></tr><tr><td>&nbsp;</td><td><a href='function.number-format.html'>number_format</a></td><td>在此版本之前，number_format 接受一个、两个或四个参数（不会是三个）。</td></tr><tr><td>&nbsp;</td><td><a href='function.parse-str.html'>parse_str</a></td><td>result 是必须项。</td></tr><tr><td>&nbsp;</td><td><a href='function.soundex.html'>soundex</a></td><td>Prior to this version, calling the function with an empty string returned false
       for no particular reason.</td></tr><tr><td>&nbsp;</td><td><a href='function.sprintf.html'>sprintf</a></td><td>此函数失败时不再返回 false 。</td></tr><tr><td>&nbsp;</td><td><a href='function.str-split.html'>str_split</a></td><td>如果 length 小于 1，现在会抛出
       ValueError；之前会触发 E_WARNING
       级别的错误且函数会返回 false。</td></tr><tr><td>&nbsp;</td><td><a href='function.str-word-count.html'>str_word_count</a></td><td>characters 可为空（Nullable）类型。</td></tr><tr><td>&nbsp;</td><td><a href='function.strcspn.html'>strcspn</a></td><td>length 现在允许为 null。</td></tr><tr><td>&nbsp;</td><td><a href='function.strip-tags.html'>strip_tags</a></td><td>allowed_tags 允许为 null。</td></tr><tr><td>&nbsp;</td><td><a href='function.stripos.html'>stripos</a></td><td>不再支持 int 传递给 needle。</td></tr><tr><td>&nbsp;</td><td><a href='function.stristr.html'>stristr</a></td><td>不再支持 int 传递给 needle。</td></tr><tr><td>&nbsp;</td><td><a href='function.strpos.html'>strpos</a></td><td>不再支持 int 传入 needle。</td></tr><tr><td>&nbsp;</td><td><a href='function.strrchr.html'>strrchr</a></td><td>不再支持将 int 作为 needle 传递。</td></tr><tr><td>&nbsp;</td><td><a href='function.strripos.html'>strripos</a></td><td>不再支持将 int 传递给 needle。</td></tr><tr><td>&nbsp;</td><td><a href='function.strrpos.html'>strrpos</a></td><td>不再支持将 int 传递给 needle。</td></tr><tr><td>&nbsp;</td><td><a href='function.strspn.html'>strspn</a></td><td>length 现在允许为 null。</td></tr><tr><td>&nbsp;</td><td><a href='function.strstr.html'>strstr</a></td><td>不再支持传递 int 作为 needle。</td></tr><tr><td>&nbsp;</td><td><a href='function.substr.html'>substr</a></td><td>现在 length 允许为 null。当 length
       显式设置为 null 时，函数返回在字符串末尾结束的子字符串，而之前将返回空字符串。</td></tr><tr><td>&nbsp;</td><td><a href='function.substr.html'>substr</a></td><td>函数将返回空字符串, 在此之前返回 false。</td></tr><tr><td>&nbsp;</td><td><a href='function.substr-compare.html'>substr_compare</a></td><td>length 现在允许为 null。</td></tr><tr><td>&nbsp;</td><td><a href='function.substr-count.html'>substr_count</a></td><td>length 可以为空（nullable）。</td></tr><tr><td>&nbsp;</td><td><a href='function.substr-replace.html'>substr_replace</a></td><td>length 现在允许为 null。</td></tr><tr><td>&nbsp;</td><td><a href='function.vsprintf.html'>vsprintf</a></td><td>此函数失败时不再返回 false 。</td></tr></tbody><tbody class="gen-changelog v8-0-0"><tr><td>7.4.0</td><td><a href='function.chr.html'>chr</a></td><td>此函数不再静默接受不支持的 codepoint，并会将它们转为 0。</td></tr><tr><td>&nbsp;</td><td><a href='function.implode.html'>implode</a></td><td>在 array 之后传递 separator （即：使用遗留写法）已被废弃。</td></tr><tr><td>&nbsp;</td><td><a href='function.money-format.html'>money_format</a></td><td>弃用此函数。使用 NumberFormatter::formatCurrency 替代。</td></tr><tr><td>&nbsp;</td><td><a href='function.str-getcsv.html'>str_getcsv</a></td><td>escape 现在将空字符串视为禁用专有转义机制的信号。以前视为默认参数值。</td></tr><tr><td>&nbsp;</td><td><a href='function.strip-tags.html'>strip_tags</a></td><td>allowed_tags 现在可以接受 array。</td></tr></tbody><tbody class="gen-changelog v7-4-0"><tr><td>7.3.0</td><td><a href='function.stripos.html'>stripos</a></td><td>弃用 int 传递给 needle。</td></tr><tr><td>&nbsp;</td><td><a href='function.stristr.html'>stristr</a></td><td>弃用 int 传递给 needle。</td></tr><tr><td>&nbsp;</td><td><a href='function.strpos.html'>strpos</a></td><td>弃用 int 传入 needle。</td></tr><tr><td>&nbsp;</td><td><a href='function.strrchr.html'>strrchr</a></td><td>弃用将 int 作为 needle 传递。</td></tr><tr><td>&nbsp;</td><td><a href='function.strripos.html'>strripos</a></td><td>弃用将 int 传递给 needle。</td></tr><tr><td>&nbsp;</td><td><a href='function.strrpos.html'>strrpos</a></td><td>弃用将 int 传递给 needle。</td></tr><tr><td>&nbsp;</td><td><a href='function.strstr.html'>strstr</a></td><td>弃用传递 int 作为 needle。</td></tr></tbody><tbody class="gen-changelog v7-3-0"><tr><td>7.2.18, 7.3.5</td><td><a href='function.substr-compare.html'>substr_compare</a></td><td>offset 现在可能等于 haystack。</td></tr></tbody><tbody class="gen-changelog v7-2-18, 7-3-5"><tr><td>7.2.0</td><td><a href='function.number-format.html'>number_format</a></td><td>number_format 现在再也不会返回 -0，之前
        num 为 -0.01 的情况下可以返回 -0。</td></tr><tr><td>&nbsp;</td><td><a href='function.parse-str.html'>parse_str</a></td><td>不带第二个参数的情况下使用 parse_str 会产生 
        E_DEPRECATED 警告。</td></tr><tr><td>&nbsp;</td><td><a href='function.utf8-decode.html'>utf8_decode</a></td><td>This function has been moved from the XML extension to the core of PHP.
        In previous versions, it was only available if the XML extension was installed.</td></tr><tr><td>&nbsp;</td><td><a href='function.utf8-encode.html'>utf8_encode</a></td><td>This function has been moved from the XML extension to the core of PHP.
        In previous versions, it was only available if the XML extension was installed.</td></tr></tbody><tbody class="gen-changelog v7-2-0"><tr><td>7.1.0</td><td><a href='function.str-shuffle.html'>str_shuffle</a></td><td>内置的随机算法从 libc rand 函数更改为梅森旋转伪随机数生成算法。</td></tr><tr><td>&nbsp;</td><td><a href='function.stripos.html'>stripos</a></td><td>开始支持负数的 offset。</td></tr><tr><td>&nbsp;</td><td><a href='function.strpos.html'>strpos</a></td><td>开始支持负数的 offset。</td></tr><tr><td>&nbsp;</td><td><a href='function.substr-count.html'>substr_count</a></td><td>开始支持负数的 offset 和 length。</td></tr></tbody></table>
 </div>
</div></div></body></html>